package com.example.leetcode.prcatice;

import java.util.Arrays;

/**
 * 第 i 个人的体重为 people[i]，每艘船可以承载的最大重量为 limit。
 *
 * <p>每艘船最多可同时载两人，但条件是这些人的重量之和最多为 limit。
 *
 * <p>返回载到每一个人所需的最小船数。(保证每个人都能被船载)
 *
 * <p>来源：力扣（LeetCode） 链接：https://leetcode-cn.com/problems/boats-to-save-people
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 * 救生艇
 */
public class Test881 {

    public int numRescueBoats(int[] people, int limit) {
        Arrays.sort(people);
        // 1,3,4,7,8
        int left = 0 ;
        int right = people.length -1;
        int result = 0;
        while (left<=right){
            if (people[left]+people[right] <=limit) {
                left++;
            }
            right--;
            result++;
        }
        return result;
    }
}


class Demo881{
  public static void main(String[] args) {
    int[] people = {3,8,7,1,4};
    int limit = 9;
    Test881 t = new Test881();
    int i = t.numRescueBoats(people, limit);
    System.out.println(i);
  }
}